Описать процедуру RemoveForInc(A, N), удаляющую из вещественного массива A размера N «лишние» элементы так, чтобы оставшиеся элементы оказались упорядоченными по возрастанию: первый элемент не удаляется, второй элемент удаляется, если он меньше первого, третий— если он меньше предыдущего элемента, оставленного в массиве, и т. д. Например, массив 5.5, 2.5, 4.6, 7.2, 5.8, 9.4 должен быть преобразован к виду 5.5, 7.2, 9.4. Массив A и число N являются входными и выходными параметрами. С помощью этой процедуры преобразовать массивы A,B, C размера NA, NB, NC соответственно и вывести размер и содержимое полученных массивов — Pascal(Паскаль)

uses crt;
const nmax=100;
type mas=array[1..nmax] of real;
procedure Vvod(var a:mas;var n:byte;c:char);
var i:byte;
begin
repeat
write('Размер массива ',c,' до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Введите ',n,' элементов массива ',c);
for i:=1 to n do
 begin
  write('a[',i,']=');
  readln(a[i]);
 end;
clrscr;
end;
procedure Vyvod(var a:mas;n:byte;c:string);
var i:byte;
begin
writeln('Вектор ',c);
for i:=1 to n do
write(a[i]:0:2,' ');
writeln;
writeln;
end;
procedure RemoveForInc(var a:mas;var n:byte);
var i,j:byte;
begin
i:=2;
while i<=n do
if a[i]<a[i-1] then
 begin
  for j:=i to n-1 do
  a[j]:=a[j+1];
  n:=n-1;
 end
else i:=i+1;
end;
var a,b,c:mas;
    na,nb,nc:byte;
begin
clrscr;
Vvod(a,na,'A');
Vyvod(a,na,'A');
RemoveForInc(a,na);
Vyvod(a,na,'A');
write('Press Enter...');
readln;
clrscr;
Vvod(b,nb,'B');
Vyvod(b,nb,'B');
RemoveForInc(b,nb);
Vyvod(b,nb,'B');
write('Press Enter...');
readln;
clrscr;
Vvod(c,nc,'C');
Vyvod(c,nc,'C');
RemoveForInc(c,nc);
Vyvod(c,nc,'C');
write('Press Enter...');
readln;
clrscr;
end.

Leave a Comment

16 − 12 =